home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / estate.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  9.5 KB  |  303 lines

  1. 1  KEY OFF:CLS
  2. 2  LOCATE 10,1:PRINT "      REAL ESTATE ANALYSIS PROGRAM":PRINT "                  by":PRINT "            Dorn W. Stickle"
  3. 3  LOCATE 25,1:PRINT "       Press any key to continue";
  4. 4  DORN$=INKEY$:IF DORN$="" THEN 4
  5. 10  DIM M(27),C(30)
  6. 20  KEY OFF
  7. 30  CLS : LOCATE 5,1: PRINT "SELECT REAL ESTATE ANALYSIS PROGRAM MODE"
  8. 40  PRINT
  9. 50  PRINT "MODE"
  10. 60  PRINT " 0       RENT/BUY"
  11. 70  PRINT " 1       INVEST"
  12. 80  PRINT
  13. 90  INPUT "MODE"; X1
  14. 120  CLS
  15. 130  IF X1<>1 THEN 190 ELSE H=0
  16. 140  PRINT "INVESTMENT PROPERTY"
  17. 150  PRINT
  18. 160  PRINT "THIS PROGRAM PROVIDES A FINANCIAL ANALYSIS OF A PROSPECTIVE INVESTMENTPROPERTY"
  19. 170  PRINT
  20. 180  PRINT "READ DIRECTIONS CAREFULLY" : GOTO 220
  21. 190  H=0 : PRINT "RENT VS. BUY ANALYSIS PROGRAM" : PRINT : PRINT "THIS PROGRAM PROVIDES FINANCIAL"
  22. 200  PRINT "ANALYSIS OF THE ADDITIONAL INVESTMENT REQUIRE D TO BUY A HOME RATHER THAN RENT."
  23. 210  PRINT : PRINT "READ DIRECTIONS CAREFULLY."
  24. 220  PRINT
  25. 230  PRINT
  26. 240  INPUT "DO YOU WANT TO USE DATA ALREADY STORED (Y/N) ";T1$
  27. 260  IF T1$<>"Y" AND T1$<>"y" THEN 340
  28. 270  PRINT "WHICH FILE NAME?"
  29. 280  INPUT C2$
  30. 290  OPEN C2$ FOR INPUT AS #1
  31. 300  FOR I=1 TO 27 :INPUT# 1 , M(I):NEXT I
  32. 310  CLOSE #1
  33. 330  GOTO 960
  34. 340  PRINT :PRINT :PRINT "NUMBER OF YEARS FROM PURCHASE UNTIL SALE (";M(19);") ";
  35. 350  INPUT A: IF A <> 0 THEN M(19) = A
  36. 360  IF X1=1 THEN 420
  37. 365  REM===================================================================
  38. 370  IF M(26) = 0 THEN A$ = "Y" ELSE A$ = "N"
  39. 380  PRINT :PRINT "ARE YOU GOING TO DEFER INCOME TAXES"
  40. 390  PRINT "ON CAPITAL GAINS WHEN YOU SELL (";A$;") ";
  41. 400  INPUT T5$: IF T5$ = "" THEN 420
  42. 410  IF T5$="Y" THEN M(26)=0 ELSE M(26) =1
  43. 420  PRINT :PRINT "PRICE OF THE PROPERTY (";M(1);") ";
  44. 430  INPUT A: IF A <> 0 THEN M(1)=A
  45. 440  PRINT :PRINT "% DOWNPAYMENT (";M(2);"%) ";
  46. 450  INPUT A: IF A <> 0 THEN M(2)=A
  47. 460  PRINT :PRINT "INTEREST RATE IN % (";M(3);"%) ";
  48. 470  INPUT A: IF A <> 0 THEN M(3)=A
  49. 480  PRINT :PRINT "TAX DEDUCTABLE CLOSING COSTS (";M(17);") ";
  50. 490  INPUT A: IF A <> 0 THEN M(17)=A
  51. 500  PRINT :PRINT "NON-DEDUCTABLE CLOSING COSTS AND OTHER INITIAL COSTS (";M(18);") ";
  52. 510  INPUT A: IF A <> 0 THEN M(18)=A
  53. 520  PRINT :PRINT "MORTGAGE TERM IN YRS (";M(5);") ";
  54. 530  INPUT A: IF A <> 0 THEN M(5)=A
  55. 540  IF X1=0 THEN 580
  56. 550  PRINT :PRINT "VALUE OF THE LAND (";M(6);") ";
  57. 560  INPUT A: IF A <> 0 THEN M(6)=A
  58. 570  PRINT :PRINT "MONTHLY RENTAL INCOME - ALL UNITS OCCUPIED (";M(7);") "; : GOTO 600
  59. 580  PRINT :PRINT "MONTHLY ALTERNATIVE RENT COST FOR EQUIVALENT HOUSING, PLUS-"
  60. 590  PRINT "MONTHLY UTILITIES YOU PAY (";M(7);") ";
  61. 600  INPUT A: IF A <> 0 THEN M(7)=A
  62. 610  IF X1=0 THEN 640
  63. 620  PRINT :PRINT "ESTIMATED VACANCY RATE IN % (";M(4);"%) ";
  64. 630  INPUT A: IF A <> 0 THEN M(4)=A
  65. 640  PRINT :PRINT "ANNUAL UTILITIES EXPENSE (";M(8);") ";
  66. 650  INPUT A: IF A <> 0 THEN M(8)=A
  67. 660  PRINT :PRINT "ANNUAL PROPERTY TAXES (";M(9);") ";
  68. 670  INPUT A: IF A <> 0 THEN M(9)=A
  69. 680  IF X1=1 THEN PRINT "MAINTANENCE AS % OF RENTAL INCOME ("; :GOTO 700
  70. 690  PRINT :PRINT "ANNUAL MAINTENANCE COSTS (";
  71. 700  PRINT M(10);") ";
  72. 710  INPUT A: IF A <> 0 THEN M(10)=A
  73. 720  PRINT :PRINT "ANNUAL INSURANCE COSTS (";M(11);") ";
  74. 730  INPUT A: IF A <> 0 THEN M(11)=A
  75. 740  PRINT :PRINT "OTHER ANNUAL EXPENSES (";M(12);") ";
  76. 750  INPUT A: IF A <> 0 THEN M(12)=A
  77. 760  IF X1=0 THEN M(13)=0 :GOTO 800
  78. 770  PRINT :PRINT "DEPRECIATION RATE IN %/YR."
  79. 780  PRINT "USING `DECLINING BALANCE' METHOD (";M(13);"%)";
  80. 790  INPUT A: IF A <> 0 THEN M(13)=A
  81. 800  PRINT :PRINT "MARGINAL INCOME TAX BACKET (";M(14);"%) ";
  82. 810  INPUT A: IF A <> 0 THEN M(14)=A
  83. 820  PRINT :PRINT "INFLATION RATE (%) FOR RENTS, EXPENSES, AND TAXES (";M(15);"%) ";
  84. 830  INPUT A: IF A <> 0 THEN M(15)=A
  85. 840  PRINT :PRINT "PROPERTY APPRECIATION RATE IN % (";M(16);"%) ";
  86. 850  INPUT A: IF A <> 0 THEN M(16)=A
  87. 860  IF M(16)<0 THEN PRINT "MUST NOT BE LESS THAN ZERO" : GOTO 840
  88. 870  IF X1=1 THEN M(20)=1 ELSE M(20)=2
  89. 875  REM===================================================================
  90. 880  PRINT :PRINT "DO YOU WANT TO STORE THE DATA (Y/N) ";
  91. 890  INPUT T2$
  92. 900  IF T2$<>"Y" AND T2$<>"y" THEN 960
  93. 910  PRINT :PRINT "NAME THE FILE"
  94. 920  INPUT C3$
  95. 930  OPEN C3$ FOR OUTPUT AS #1
  96. 940  FOR I=1 TO 27:PRINT#1,M(I):NEXT I
  97. 950  CLOSE # 1
  98. 955  REM===================================================================
  99. 960  ' SELECT COMPUTATION OPTION
  100. 970  CLS:PRINT "CHOOSE ONE OF THE FOLLOWING OPTIONS:"
  101. 980  PRINT :PRINT :PRINT " 1= LIST INPUT DATA"
  102. 990  PRINT " 2= A. T. CASH FLOWS & IRR"
  103. 1020  PRINT " 4= COMPUTE IRR ONLY"
  104. 1030  PRINT " 5= CHANGE A VARIABLE"
  105. 1040  PRINT " 6= MODIFY ALL VARIABLES"
  106. 1050  PRINT " 7= STOP"
  107. 1060  PRINT :PRINT :INPUT F1
  108. 1070  F1=INT (F1)
  109. 1080  IF F1<1 OR F1>7 THEN PRINT "NO GOOD, TRY AGAIN" : GOTO 980
  110. 1090  IF F1=3 THEN PRINT : PRINT "COMPUTING RETURN RATE (IRR)..." : PRINT : AI=M(16)= 0 : H=0
  111. 1100  I6=1
  112. 1110  O3=0
  113. 1120  Y2=0
  114. 1130  IF F1=1 THEN 2720
  115. 1140  IF F1=2 THEN 1190
  116. 1150  IF F1=3 THEN F1=1:GOTO 2720
  117. 1160  IF F1=5 THEN 2680
  118. 1170  IF F1=6 THEN 340
  119. 1180  IF F1=7 THEN PRINT "DONE" :  STOP
  120. 1190  GOSUB 3050
  121. 1195  REM===================================================================
  122. 1200  PRINT "**** CASHFLOW & INCOME ****"
  123. 1210  ' START COMPUTATIONS *****
  124. 1220  M(21)=M(1)-M(2)/100*M(1)
  125. 1230  IF X1=1 THEN M(22)=M(1)-M(6)
  126. 1240  IF X1=1 THEN M(24)=M(22) ELSE M(24)=0:M(22)=0
  127. 1250  M(25)=M(21)
  128. 1260  GOSUB 1640
  129. 1270  ' LPRINTS EACH YEARS CASH FLOWS."
  130. 1280  Y2=Y2+1
  131. 1290  P1=1+(Y2-1)*12
  132. 1300  P2=P1+11
  133. 1310  GOSUB 1740
  134. 1320  IF X1=1 THEN O1=12*(100-M(4))/100*I6 ELSE O1=12*M (7)*I6
  135. 1330  I6 =I6*(1+M(15)/100)
  136. 1340  IF X1=1 THEN O3=M(24)*M(13)/100 ELSE O3=0
  137. 1350  IF X1=1 THEN O4= (M(8) +M(9)+M(11)+M(12)*I6+1*M(10))/100 ELSE 1370
  138. 1360  GOTO 1380
  139. 1370  O4=(M(8)+M(9)+M(10)+M(11)+M(12))*I6+M(23)-O2
  140. 1380  O5=O2+O3+O4 : IF X1<>1 THEN O5=O5-O3
  141. 1390  O6=O1-O5
  142. 1400  IF X1=1 THEN O7=O6*(-M(14)/100) ELSE P7=(O2+N(9))*(M(14)/100)
  143. 1410  IF X1=1 THEN O8=O1-M(23)-4 ELSE O8=O1-O2-O4
  144. 1420  IF X1=1 THEN O9=O8+O7 ELSE O9=O8+P7
  145. 1430  C(Y2)=O9 : IF X1<>1 THEN 1450
  146. 1440  M(24)=M(24)-O3
  147. 1450  M(25)=M(25)-M(23)+O2
  148. 1460  ' LPRINTOUT ANNUAL CASHFLOWS!
  149. 1470  IF F1<>2 THEN 1620
  150. 1480  PRINT  "YEAR";Y2;"(ANNUAL $)";STRING$(20,"=")
  151. 1490  IF X1=1 THEN PRINT  "GROSS RENTAL INCOME=",O1 ELSE 1510
  152. 1500  GOTO 1520
  153. 1510  PRINT  "ALTER. RENTAL COSTS   =",O1
  154. 1520  PRINT  "       EXPENSES:"
  155. 1530  PRINT  "INTEREST EXPENSE      =",O2
  156. 1540  PRINT  "DEPREC. EXPENSE       =",O3
  157. 1550  PRINT  "OTHER EXPENSE         =",O4
  158. 1560  PRINT  "TOTAL EXPENSES        =",O5
  159. 1570  PRINT
  160. 1580  PRINT  "NET INCOME            =",O6
  161. 1590  PRINT  "B. T. CASH FLOW       =",O8
  162. 1600  IF X1<>1 THEN PRINT "INCOME TAX SAVINGS    =",P7
  163. 1610  PRINT  "A. T. CASH FLOW       =",O9
  164. 1620  IF Y2<M(19) THEN 1280
  165. 1630  GOTO 1800
  166. 1640  ' PAYMENT COMPUTATION !
  167. 1650  S3=M(21)
  168. 1660  V1=M(21)
  169. 1670  J=M(3)/1200
  170. 1680  N=M(5)*12
  171. 1690  R=(1+J)^(-N)
  172. 1700  P=-V1/((1-R)/J)
  173. 1710  P=INT(P*100+0.5)/100
  174. 1720  M(23)=-12*P
  175. 1730  RETURN
  176. 1740  ' *** COMPUTE ANN.INER. EXPENSE ***
  177. 1750  O2=0
  178. 1760  FOR I=P1 TO P2
  179. 1770  S2=J*S3 : S2=INT (S2*100+ 0.5)/100 : S3=S3+S2+P : O2=O2+S2
  180. 1780  NEXT I
  181. 1790  RETURN
  182. 1800  REM===================================================================
  183. 1810  C(0)=-M(1)*M(2)/100-M(18)-M(17)*(100-M(14))/100
  184. 1820  A2=C(M(19))
  185. 1825  G1=M(1)*(1+M(16)/100)^M(19)
  186. 1830  GOTO 1860
  187. 1840  IF X1=1 THEN T=(M(22)-M(24))*M(14)/100+(G1*0.94-M(1))*0.4*M(14)/100 ELSE 1730
  188. 1850  T=M(26)*(G1*0.94-M(1))*0.4*M(14)/100
  189. 1860  C(M(19))=A2+G1*0.94-T-M(25)
  190. 1870  IF F1<>2 THEN 2040
  191. 1880  IF X1=1 THEN PRINT  "SUMMARY OF AFTER TAX CASH FLOWS" ELSE  1890
  192. 1890  PRINT  "SUMMARY OF MARGINAL AFTER TAX CASH FLOWS"
  193. 1900  FOR I=0 TO M(19)
  194. 1910  PRINT  "YEAR",I,C(I)
  195. 1920  NEXT I
  196. 1950  PRINT  "FINAL SALE PRICE = ";G1
  197. 1960  PRINT
  198. 1970  PRINT "WITH 6% REAL ESTATE COMMISSION, SALE PROCEEDS IN YEAR";M(19);"IS ";G1*0.94
  199. 2000  PRINT
  200. 2005  PRINT :INPUT "HIT ENTER TO CONTINUE ";Q$ :CLS
  201. 2010  PRINT "INTERNAL RATE OF RETURN BEING COMPUTED."
  202. 2030  PRINT
  203. 2035  REM===================================================================
  204. 2040  ' *** COMPUTE IRR ***
  205. 2050  K1=1     'SIGH OF P.V. INDICATOR
  206. 2060  K2=0.2      'INITIAL IRR INCREM.
  207. 2070  J2=0       ' FLAG FOR NEG. IRR
  208. 2080  J=0
  209. 2090  V2=0
  210. 2100  V4=0
  211. 2110  FOR I=0 TO M(19)
  212. 2120  R=(1+J)^I
  213. 2130  V1=C(I)/R
  214. 2140  V2=V2+V1
  215. 2150  NEXT I
  216. 2160  K=ABS(V2)/V2
  217. 2170  IF K<>K1 THEN K1=K : K2=K2/2
  218. 2180  J1=J+K1*K2
  219. 2190  IF J1<0 THEN PRINT "APPR. RATE ";M(16);"%";"  IRR NEGATIVE" : J=0 : J1=J : J2=1 : GOTO 2090
  220. 2200  IF ABS(J-J1)>0.000999999 THEN J=J1 : GOTO 2090
  221. 2210  IF F1<>3 THEN PRINT "AT ANN. APPREC. RATE =";M(16);"%";"A.T. INT. RATE OF RETURN="; J*100;"%"
  222. 2220  IF F1<>3 THEN  INPUT "HIT ENTER TO CONTINUE";Q$:GOTO 960
  223. 2230  IF J=0 THEN 2290
  224. 2240  X=M(16)
  225. 2250  D(H)=X
  226. 2260  E(H)=J*100
  227. 2270  H=H+1
  228. 2280  PRINT USING  "APPR. RATE",M(16),"%"," IRR =",E(H-1),"%"
  229. 2290  IF J2=1 AND M(16)<24 THEN M(16)=M(16)+2 : GOTO 2310
  230. 2300  IF M(16)<25 THEN M(16)=M(16)+10
  231. 2310  INPUT "HIT ENTER TO CONTINUE ";Q$  : GOTO 1830
  232. 2315  REM===================================================================
  233. 2620  ! *** CHANGES ONE OR MORE VARIABLES ***
  234. 2630  CRT IS 1
  235. 2640  PRINT
  236. 2650  PRINT "DO YOU WANT TO CHANGE A VARIABLE? (Y/N)"
  237. 2660  INPUT T4$
  238. 2670  IF T4$[1,1]#"Y" THEN 970
  239. 2680  CLS:PRINT  "1 .PROPERTY PRICE",M(1)
  240. 2681  PRINT  "2 .% DOWN",,M(2)
  241. 2682  PRINT  "3 .INTEREST RATE %",M(3)
  242. 2684   PRINT  "4 .%  EST VACANCY RATE",M(4)
  243. 2685  PRINT  "5 .MORTGAGE TERM YRS. ",M(5)
  244. 2686  PRINT  "6 .LAND VALUE" ,,M(6)
  245. 2687  PRINT  "7 .MONTHLY RENTAL INCOME",M(7)
  246. 2688  PRINT  "8 .ANNUAL UTILITY EXPENSES",M(8)
  247. 2689  PRINT  "9 .ANNUAL PROPERTY TAXES. ",M(9)
  248. 2690  PRINT  "10.MAINT .% OF RENTAL INC.", M(10)
  249. 2691  PRINT  "11.OTHER ANNUAL EXP.",M(11)
  250. 2692  PRINT  "12.ANNUAL INSURANCE EXP.",M(12)
  251. 2693  PRINT  "13.%/YR. DEPRECIATION.",M(13)
  252. 2694  PRINT  "14.MARGINAL INCOME TAX % ",M(14)
  253. 2695  PRINT  "15.INFLATION % RENT & EXP",M(15)
  254. 2696  PRINT  "16.EST. PROPERTY APPR.%/YR",M(16)
  255. 2697  PRINT  "17.TAX-DED. CLOSING COSTS",M(17)
  256. 2698  PRINT  "18.NON-DED. CLOSING COSTS",M(18)
  257. 2699  PRINT  "19.YEARS:PURCHASE TO SALE",M(19)
  258. 2700  PRINT :LOCATE 22,1:PRINT "ENTER 0 WHEN COMPLETE "
  259. 2701  PRINT :LOCATE 23,1:INPUT "ENTER VARIABLE NUMBER TO CHANGE ";I
  260. 2704  PRINT :LOCATE 23,1:INPUT "ENTER VARIABLES NEW VALUE           ";M(I)
  261. 2705  IF I=0 THEN GOTO 910 ELSE GOTO 2680
  262. 2710  STOP
  263. 2715  REM===================================================================
  264. 2720  ' *** PRINT INPUT VARIABLES ***
  265. 2730  GOSUB 3050
  266. 2740  PRINT :PRINT :PRINT :PRINT
  267. 2750  A$="22A,9D."
  268. 2760  PRINT "**** INPUT DATA ****"
  269. 2770  PRINT:PRINT
  270. 2780  PRINT  "PROPERTY PRICE",M(1)
  271. 2790  PRINT  "% DOWN",,M(2)
  272. 2800  PRINT  "INTEREST RATE %",M(3)
  273. 2810  PRINT  "TAX-DED. CLOSING COSTS",M(17)
  274. 2820  PRINT  "NON-DED. CLOSING COSTS",M(18)
  275. 2830  PRINT
  276. 2840  PRINT  "MORTGAGE TERM YRS. ",M(5)
  277. 2850  IF X1=1 THEN PRINT  "LAND VALUE" ,,M(6) ELSE 2870
  278. 2860  PRINT  "MONTHLY RENTAL INCOME",M(7) : GOTO 2880
  279. 2870  PRINT  "ALTER. MO. RENTAL COSTS",M(7)
  280. 2880  IF XX1=1 THEN PRINT  "%" EST VACANCY RATE",M(4)
  281. 2890  PRINT  "ANNUAL PROPERTY TAXES. ",M(8)
  282. 2900  PRINT
  283. 2910  PRINT  "ANNUAL UTILITY EXPENSES",M(9)
  284. 2920  IF X1=1 THEN PRINT  "MAINT .% OF RENTAL INC.", M(10) ELSE 2940
  285. 2930  GOTO 2950
  286. 2940  PRINT  "ANNUAL INSURANCE EXP.",M(12)
  287. 2950  PRINT  "ANNUAL INSURAMCE EXP.",M(11)
  288. 2960  PRINT  "OTHER ANNUAL EXP. ",M(12)
  289. 2970  IF X1=1 THEN PRINT  "%/YR. DEPRECIATION.",M(13)
  290. 2980  REM
  291. 2990  PRINT  "MARGINAL INCOME TAX % ",M(14)
  292. 3000  PRINT  "INFLATION % RENT & EXP",M(15)
  293. 3010  PRINT  "EST. PROPERTY APPR.%/YR",M(16)
  294. 3020  PRINT  "YEARS:PURCHASE TO SALE",M(19)
  295. 3030  PRINT
  296. 3040  INPUT "HIT ENTER TO CONTINUE ";Q$ :GOTO 960
  297. 3050  ' SUBROUTINE FOR LPRINTOUTS
  298. 3060  REM
  299. 3070  REM
  300. 3080  REM
  301. 3090  RETURN
  302. 3100  END
  303.